package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.ProductBean;

import java.time.LocalDate;
import java.util.List;


public interface IProductService {
    /**
     * 按供应商id查询该供应商提供的商品集合
     * @param supplierId 供应商
     * @return 商品集合
     */
    public List<ProductBean> findBySupplierId(int supplierId);

    /**
     * 按供应商id添加商品
     * @param supplierId 供应商id
     * @param product 商品对象
     */
    public void addProduct(int supplierId,ProductBean product);


    /**
     * 按id删除商品（修改供应商外键为0）
     * @param id 商品id
     */
    public void delById(int id);

    /**
     * 按商品id入库商品
     * @param id 商品id
     * @param num 采购数量
     */
    public void buyProduct(int id,int num);

    /**
     * 按选项动态分页查询商品集合
     * @param pn 页码
     * @param pageSize 每页大小
     * @param name 商品名
     * @param type 类别
     * @param startNum 数量下限
     * @param endNum 数量上限
     * @return 分页对象
     */
    public PageInfo<ProductBean> findByItem(int pn, int pageSize, String name,String type,Integer startNum ,Integer endNum);

    /**
     * 按id查询商品信息
     * @param id 商品id
     * @return 商品对象
     */
    public ProductBean findById(int id);

    /**
     * 按id修改销售价格
     * @param id 商品id
     * @param price 新价格
     */
    public void update(int id,int price);

    /**
     * 按选项分页查找商品销售
     * 并查询时间范围的销售数量
     * @param pn 页码
     * @param pageSize 每页大小
     * @param factory 厂商
     * @param startDate 起始时间
     * @param endDate 结束时间
     * @return 分页对象
     */
    public PageInfo<ProductBean> findSellProductByItem(int pn, int pageSize,
                                                       String factory, LocalDate startDate,LocalDate endDate);
}
